from selenium.webdriver.support.wait import WebDriverWait
import time


class Base:
    def __init__(self, driver):
        self.driver = driver

    # 查找元素
    def base_find_element(self, loc, timeout=30, poll=0.5):
        """
        :param loc:元素的定位信息,格式为元组
        :param timeout:默认超时时间为30s
        :param poll:访问频率,默认0.5s查找一次元素
        :return:返回查找到的元素
        """
        return WebDriverWait(self.driver,
                             timeout=timeout,
                             poll_frequency=poll).until(lambda x: x.find_element(*loc))

    # 点击数字
    def base_click(self, loc):
        self.base_find_element(loc).click()

    # 获取value属性方法封装
    def base_get_value(self, loc):
        # 使用get_attribute()方法获取指定属性的值
        return self.base_find_element(loc).get_attribute("value")

    # 截图
    def base_image(self):
        self.driver.get_screenshot_as_file("../png/{}.png"
                                           .format(time.strftime("%Y-%m-%d %H-%M-%S")))
